home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Information / CSMP Digest / volume 1 / csmp-v1-211.txt < prev    next >
Text File  |  1992-12-31  |  61KB  |  1,430 lines

  1. C.S.M.P. Digest             Mon, 09 Nov 92       Volume 1 : Issue 211
  2.  
  3. Today's Topics:
  4.  
  5.     Moving the mouse pointer-- how?
  6.     Crippled LC Sound Chip? (was Re: Sound Manager Phooey!)
  7.     Execution timing of ODOC
  8.     ICMP
  9.     CountAppFiles --- and starting a child process
  10.     Disassembly with source in MPW?
  11.  
  12.  
  13.  
  14. The Comp.Sys.Mac.Programmer Digest is moderated by Michael A. Kelly.
  15.  
  16. The digest is a collection of article threads from the internet newsgroup
  17. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  18. regularly and want an archive of the discussions.  If you don't know what a
  19. newsgroup is, you probably don't have access to it.  Ask your systems
  20. administrator(s) for details.  (This means you can't post questions to the
  21. digest.)
  22.  
  23. Each issue of the digest contains one or more sets of articles (called
  24. threads), with each set corresponding to a 'discussion' of a particular
  25. subject.  The articles are not edited; all articles included in this digest
  26. are in their original posted form (as received by our news server at
  27. cs.uoregon.edu).  Article threads are not added to the digest until the last
  28. article added to the thread is at least one month old (this is to ensure that
  29. the thread is dead before adding it to the digest).  Article threads that
  30. consist of only one message are generally not included in the digest.
  31.  
  32. The entire digest is available for anonymous ftp from ftp.cs.uoregon.edu
  33. [128.223.8.8] in the directory /pub/mac/csmp-digest.  Be sure to read the
  34. file /pub/mac/csmp-digest/README before downloading any files.  The most
  35. recent issues are available from sumex-aim.stanford.edu [36.44.0.6] in the
  36. directory /info-mac/digest/csmp.  If you don't have ftp capability, the sumex
  37. archive has a mail server; send a message with the text '$MACarch help' (no
  38. quotes) to LISTSERV@ricevm1.rice.edu for more information.
  39.  
  40. The digest is also available via email.  Just send a note saying that you
  41. want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
  42. automatically receive each new issue as it is created.  Sorry, back issues
  43. are not available through the mailing list.
  44.  
  45. Send administrative mail to mkelly@cs.uoregon.edu.
  46.  
  47.  
  48. -------------------------------------------------------
  49.  
  50. From: jkreibic@sumter.cso.uiuc.edu (Jay Arnold Kreibich)
  51. Subject: Moving the mouse pointer-- how?
  52. Organization: University of Illinois at Urbana
  53. Date: Thu, 1 Oct 1992 20:19:21 GMT
  54.  
  55.  
  56.  
  57.   I am writing a driver program that needs to move the mouse cursor  
  58. location around the screen, but I'm not quite sure how to do that.  Any  
  59. tips on where to lookup functions that will assign a new mouse pointer  
  60. location?
  61.  
  62.   Thanks o lot!
  63.  
  64. - -Jay Kreibich
  65.  jkreibic@uiuc.edu
  66.  
  67. +++++++++++++++++++++++++++
  68.  
  69. From: zocca@amc.uva.nl (Vincent Zocca)
  70. Date: Sun, 4 Oct 1992 10:34:08 GMT
  71. Organization: Uni. of Amsterdam, Fac. of Med.
  72.  
  73. In article <BvGLsF.F1n@news.cso.uiuc.edu>, jkreibic@sumter.cso.uiuc.edu
  74. (Jay Arnold Kreibich) wrote:
  75. >   I am writing a driver program that needs to move the mouse cursor  
  76. > location around the screen, but I'm not quite sure how to do that.  Any  
  77. > tips on where to lookup functions that will assign a new mouse pointer  
  78. > location?
  79.  
  80. As far as I know it just can't be done. I think you've got to hide the
  81. cursor and make apear something that looks like a cursor but isn't.
  82.  
  83.  
  84.  ------------------------------------------
  85. |         Vincent Zocca                    |
  86. |                                          |
  87. |         University of Amsterdam          |
  88. |         Faculty of medicine              |
  89. |         Meibergdreef 9                   |
  90. |         1105 AZ Amsterdam                |
  91. |         Phone: (***31) (0)20 5664403     |
  92.  ------------------------------------------
  93.  
  94. +++++++++++++++++++++++++++
  95.  
  96. From: brianc@acuson.com (Brian Cox)
  97. Date: 6 Oct 92 00:28:46 GMT
  98. Organization: Acuson; Mountain View, California
  99.  
  100. jkreibic@sumter.cso.uiuc.edu (Jay Arnold Kreibich) writes:
  101.  
  102.  
  103.  
  104. >  I am writing a driver program that needs to move the mouse cursor  
  105. >location around the screen, but I'm not quite sure how to do that.  Any  
  106. >tips on where to lookup functions that will assign a new mouse pointer  
  107. >location?
  108.  
  109. >  Thanks o lot!
  110.  
  111. >-Jay Kreibich
  112. > jkreibic@uiuc.edu
  113.  
  114.  
  115. Without getting in to the subjective merits of doing so, I'll just
  116. mention that Apple strongly discourages moving the mouse sprite
  117. without an analogous action from the user.  They discourage it to
  118. the extent that they don't provide a routine that does it.  You
  119. might try hiding the cursor and drawing your own.  But that would
  120. get really ugly fast...  
  121.  
  122. Are you really sure that you want to move the mouse cursor?
  123.  
  124.             --BC--
  125.  
  126.  
  127. - -- 
  128.  
  129.                        --Brian Cox--
  130. - ------------------
  131.  
  132. +++++++++++++++++++++++++++
  133.  
  134. From: zobkiw@world.std.com (Joe Zobkiw)
  135. Date: 6 Oct 92 12:39:07 GMT
  136. Organization: The World Public Access UNIX, Brookline, MA
  137.  
  138. Brian Cox writes:
  139. "They discourage it to
  140. the extent that they don't provide a routine that does it."
  141.  
  142. They also don't provide a routine to read a PICT file ;)
  143.  
  144.  
  145. - -- 
  146. - -------------------------------------------------------------
  147. joe zobkiw         zobkiw@world.std.com        aol: aflzobkiw
  148.  
  149. macintosh.midi.synthesis.c.oop.asm.communications.graphics...
  150.  
  151. +++++++++++++++++++++++++++
  152.  
  153. From: Michael F. Kamprath <kamprath@space-grant.sprl.umich.edu>
  154. Date: Tue, 06 Oct 92 13:21:46 EDT
  155. Organization: University of Michigan, Aerospace Engineering
  156.  
  157. In article <1992Oct6.002846.10641@acuson.com> Brian Cox, brianc@acuson.com writes:
  158. >jkreibic@sumter.cso.uiuc.edu (Jay Arnold Kreibich) writes:
  159. >
  160. >
  161. >
  162. >>  I am writing a driver program that needs to move the mouse cursor  
  163. >>location around the screen, but I'm not quite sure how to do that.  Any  
  164. >>tips on where to lookup functions that will assign a new mouse pointer  
  165. >>location?
  166. >
  167. >>  Thanks o lot!
  168. >
  169. >>-Jay Kreibich
  170. >> jkreibic@uiuc.edu
  171. >
  172. >
  173. >Without getting in to the subjective merits of doing so, I'll just
  174. >mention that Apple strongly discourages moving the mouse sprite
  175. >without an analogous action from the user.  They discourage it to
  176. >the extent that they don't provide a routine that does it.  You
  177. >might try hiding the cursor and drawing your own.  But that would
  178. >get really ugly fast...  
  179. >
  180.  
  181. But it has to be possible . . . my reason for saying this is that MacX allows
  182. the cursor to be under the client's control (a nice feature of X-windows).  
  183. MacX is written by Apple, who surely know how to do this.  
  184.  
  185. ========================================================================
  186. | Michael F. Kamprath                   | The University of Michigan   |
  187. |   kamprath@space-grant.sprl.umich.edu |      Aerospace Engineering   |
  188. |   kamprath@engin.umich.edu            |                              |
  189. +---------------------------------------+------------------------------+
  190. | This country is a _democracy_.  It is NOT a "Two Party Sytem."  DO   |
  191. | NOT believe The Lie that not voting Republican or Democratic will    |
  192. | waste your vote.  Vote for who ever you please, and let the          |
  193. | politicians find out what a democratic government is all about.      | 
  194. ========================================================================
  195.  
  196. +++++++++++++++++++++++++++
  197.  
  198. From: grobbins@Apple.COM (Grobbins)
  199. Date: 6 Oct 92 19:54:56 GMT
  200. Organization: Apple Computer Inc., Cupertino, CA
  201.  
  202. In article <1992Oct6.002846.10641@acuson.com> brianc@acuson.com (Brian Cox) writes:
  203. >jkreibic@sumter.cso.uiuc.edu (Jay Arnold Kreibich) writes:
  204. >>  I am writing a driver program that needs to move the mouse cursor  
  205. >>location around the screen, but I'm not quite sure how to do that.  Any  
  206. >>tips on where to lookup functions that will assign a new mouse pointer  
  207. >>location?
  208. >
  209. >Without getting in to the subjective merits of doing so, I'll just
  210. >mention that Apple strongly discourages moving the mouse sprite
  211. >without an analogous action from the user.  They discourage it to
  212. >the extent that they don't provide a routine that does it.
  213.  
  214. While programmatic control of the mouse is discouraged, the
  215. steps necessary are documented by DTS.  Pasted below are two of
  216. several entries from the Q&A Stack on mouse movement.
  217.  
  218.  
  219. Grobbins         grobbins@apple.com
  220.  
  221. - ---
  222.  
  223. from the Q&A Stack (available in the dts area of ftp.apple.com):
  224.  
  225.  
  226. I'm writing a tablet (mouse, pointer, etc.) driver, and I need to be able to
  227. position the cursor and post mouseUp mouseDown events. How do I do it?
  228.  
  229. Here is an explanation of the Macintosh@ mouse/cursor mechanism, which
  230. should provide the information necessary for you to place the cursor:
  231.  
  232. The mouse is a "relative" device, which means it does not return actual
  233. coordinates; it returns a "count" or amount of movement since the last
  234. report.
  235.  
  236. When the mouse has new information, it interrupts the Macintosh. The
  237. interrupt handler adds the horizontal and vertical counts to MTemp (a
  238. low-memory location), and sets crsrNew to tell the system that the
  239. coordinates are new. Some time later (but before normal VBLs are executed)
  240. the cursor VBL task is executed, and it compares MTemp with RawMouse (which
  241. has the last value), and figures out the delta (that is, the horizontal and
  242. vertical distance moved), and does the scaling trick depending on what the
  243. user has selected in the control panel. It also updates MTemp to reflect the
  244. new value. Then it draws the cursor.
  245.  
  246. Here are the names and locations of the relevant low-memory locations:
  247.  
  248.  
  249.     RawMouse          equ $82C               ;point
  250.     MTemp             equ $828               ;point
  251.     CrsrNew           equ $8CE               ;byte
  252.     CrsrCouple        equ $8CF               ;byte
  253.  
  254.  
  255. (NOTE: These may change in future CPUs.)
  256.  
  257. If you wish to place the cursor in an absolute location on the screen, you
  258. must set RawMouse, and MTemp to the same value, and set CrsrNew to the same
  259. value as CrsrCouple.
  260.  
  261. Keep in mind that moving the cursor from an application may violate the
  262. Human Interface Guidelines, possibly confusing and frustrating the user.
  263. Also keep in mind that the low-memory locations named above are not
  264. documented, and as such, are considered unsupported and volatile.
  265.  
  266. Posting mouse down/up events is a simple matter of keeping track of the last
  267. state of your device button, and when you detect a change, you post the
  268. appropriate event. If you wish to support the ToolBox Event Manager call
  269. Button, you must also update the low-memory global MBState. The high bit of
  270. MBState reflects the current state of the mouse button: 1 = button up, 0 =
  271. button down.
  272.  
  273. Unfortunately, the system mouse driver will change this value if it notices
  274. that the state of MBState is different from the state of the real mouse
  275. button. This means if there is a mouse connected to the Macintosh while your
  276. device is connected, it will override whatever you put in MBState. On
  277. systems equipped with ADB, this will happen only when the mouse moves, or
  278. the button is pressed. On earlier systems this happens all the time, since
  279. the button checking routine was a VBL task, and is always executed. One
  280. possible workaround is to patch Button, and return the state of your button,
  281. rather than MBState. The obvious problem is that you disable the real mouse
  282. from working with Button.
  283.  
  284.  
  285. - ----
  286.  
  287.  
  288. How can I programmatically move the Macintosh@ mouse without the real mouse
  289. interfering?
  290.  
  291. The real answer to your question is twofold: First, you can do exactly what
  292. you want to do with the sample included below. HOWEVER, this is not a good
  293. thing to do, it would be better if you took the solution used in Apple's
  294. Guided Tour disks: Always hide the cursor and then decouple the cursor from
  295. the mouse. Then, instead of using the system's cursor, simply draw your own
  296. "cursor" using QuickDraw and treat it as a little animated bitmap on the
  297. screen. This avoids all the problems that you have with the mouse competing.
  298. (Apple does update the mouse globals with the mouse position so that other
  299. things function correctly.)
  300.  
  301. Now, as promised, here is the way to do what you want using the real cursor.
  302. As you have discovered, setting the crsrCouple variable to false prohibits
  303. the mouse from affecting the cursor; unfortunately, it also prohibits the
  304. jcrsrTask routine from drawing the cursor. The solution to this is to set
  305. crsr couple to true, call the cursor drawing routine jCrsrTask yourself, and
  306. then set the crsrCouple variable to false, as shown below:
  307.  
  308.  
  309. procedure callcrsr;
  310.               inline $2078 ,$08EE ,$4E90;
  311. {            move.L    jcrsrTask,A0
  312.             jsr    (A0)                            }
  313.  
  314. Procedure FudgeMouse;
  315.  
  316. type    PointPtr=^Point;
  317.  
  318. var        RawMouse:PointPtr;
  319.         MTemp:PointPtr;
  320.         RandPt:Point;
  321.         CrsrNew:ptr;
  322.         CrsrCouple:ptr;
  323.         fred:Longint;
  324.        
  325. begin
  326.         RawMouse:=PointPtr($82C);
  327.         MTemp:=PointPtr($828);
  328.         CrsrNew:=ptr($8CE);
  329.         CrsrCouple:=ptr($8CF);
  330.         RandPt:=RawMouse^;
  331.         repeat
  332.             RandPt.h:=RandPt.h+1;
  333.             RandPt.V:=RandPt.v+1;
  334.             RawMouse^:=RandPt;
  335.             MTemp^:=RandPt;
  336.             CrsrNew^:=1;
  337.             CrsrCouple^:=1;
  338.             callCrsr;
  339.             crsrCouple^:=0;
  340.             repeat until fred<tickCount;
  341.             fred:=tickCount+3;
  342.         until Button;
  343.         crsrCouple^:=1;
  344. end;
  345.  
  346.  
  347.  
  348.  
  349. +++++++++++++++++++++++++++
  350.  
  351. From: paulr@syma.sussex.ac.uk (Paul Russell)
  352. Organization: University of Sussex
  353. Date: Wed, 7 Oct 1992 14:31:06 GMT
  354.  
  355. >>jkreibic@sumter.cso.uiuc.edu (Jay Arnold Kreibich) writes:
  356. >>
  357. >>
  358. >>
  359. >>>  I am writing a driver program that needs to move the mouse cursor  
  360. >>>location around the screen, but I'm not quite sure how to do that.  Any  
  361. >>>tips on where to lookup functions that will assign a new mouse pointer  
  362. >>>location?
  363. >>
  364.  
  365. Shame on me for posting this - my only excuse is that I work in a
  366. psychology department... ;-) This code was written by me a long time
  367. ago, and may be freely used...
  368.  
  369. - ---
  370.  
  371. unit UMouseStuff; { mouse utilities }
  372.  
  373. interface
  374.  
  375.   procedure SetMouse (pt: Point); { move the current cursor position to the given point }
  376.  
  377. implementation
  378.  
  379.   const { low memory globals }
  380.     jCrsrTask = $08EE; { ProcPtr }
  381.     MTemp = $0828; { Point - Low Level interupt mouse location }
  382.     RawMouse = $082C; { Point - unprocessed mouse location }
  383.     Mouse = $830; { Point - processed mouse location }
  384.     CrsrNew = $08CE; { char - set != 0 if mouse has moved }
  385.     CrsrCouple = $08CF; { char - set = 0 if cursor not allowed to move }
  386.  
  387.   type
  388.     PointPtr = ^Point; { a pointer to a point }
  389.  
  390. {--- private functions for accessing low memory globals ---}
  391.  
  392.   function Get_MTemp: Point;
  393.  
  394.   begin
  395.     Get_MTemp := PointPtr(MTemp)^;
  396.   end; { Get_MTemp }
  397.  
  398.   procedure Set_MTemp (pt: Point);
  399.  
  400.     var
  401.       ptp: PointPtr;
  402.  
  403.   begin
  404.     ptp := PointPtr(MTemp);
  405.     ptp^ := pt;
  406.   end; { Set_MTemp }
  407.  
  408.   function Get_RawMouse: Point;
  409.  
  410.   begin
  411.     Get_RawMouse := PointPtr(RawMouse)^;
  412.   end; { Get_RawMouse }
  413.  
  414.   procedure Set_RawMouse (pt: Point);
  415.  
  416.     var
  417.       ptp: PointPtr;
  418.  
  419.   begin
  420.     ptp := PointPtr(RawMouse);
  421.     ptp^ := pt;
  422.   end; { Set_RawMouse }
  423.  
  424.   function Get_Mouse: Point;
  425.  
  426.   begin
  427.     Get_Mouse := PointPtr(Mouse)^;
  428.   end; { Get_Mouse }
  429.  
  430.   procedure Set_Mouse (pt: Point);
  431.  
  432.     var
  433.       ptp: PointPtr;
  434.  
  435.   begin
  436.     ptp := PointPtr(Mouse);
  437.     ptp^ := pt;
  438.   end; { Set_Mouse }
  439.  
  440.   procedure Set_CrsrNew;
  441.  
  442.     var
  443.       p: Ptr;
  444.  
  445.   begin
  446.     p := Ptr(CrsrNew);
  447.     p^ := 1;
  448.   end;
  449.  
  450.   procedure SetMouse (pt: Point);
  451.  
  452.   begin
  453.     Set_MTemp(pt); { set both of these low memory mouse positions to the new point }
  454.     Set_RawMouse(pt); { (this prevents scaling) }
  455.     Set_CrsrNew; { flag that the mouse has moved }
  456.   end; { SetMouse }
  457.  
  458. end.
  459.  
  460. - ---
  461. | Paul Russell              | "Some instructions have legal operation codes |
  462. | Experimental Psychology   |  but try to perform nonsensical operations.   |
  463. | Sussex University, Falmer |  These are called insane instructions."       |
  464. | Brighton BN1 9QG, England |             -- Motorola DSP 56k User's Manual |
  465.  
  466. - -- 
  467. | Paul Russell              | "Some instructions have legal operation codes |
  468. | Experimental Psychology   |  but try to perform nonsensical operations.   |
  469. | Sussex University, Falmer |  These are called insane instructions."       |
  470. | Brighton BN1 9QG, England |             -- Motorola DSP 56k User's Manual |
  471.  
  472. ---------------------------
  473.  
  474. From: bernard@cs.colorado.edu (Bernie Bernstein)
  475. Subject: Crippled LC Sound Chip? (was Re: Sound Manager Phooey!)
  476. Organization: University of Colorado at Boulder
  477. Date: Tue, 6 Oct 1992 16:02:47 GMT
  478.  
  479. In article <1992Oct5.022712.3448@news.cs.brandeis.edu>,
  480. dan@chaos.cs.brandeis.edu (Dan Schwarz) wrote:
  481. > In article <w=mz_wc@rpi.edu> johnsd2@rpi.edu writes:
  482. > >I am having a problem with an extension I am writing. This extension
  483. > >is really a background app (type='appe'), which plays sounds asynchronously
  484. > >in the background (which sounds are specified with annother program, that
  485. > >works);
  486. > ...
  487. > >This strange freeze happens on a friends LC whenever
  488. > >the sound is played, even  from an APPL. (but only if its
  489. > >asynchronously)
  490. > Speaking as a programmer who has done some SERIOUS sound manager hacking,
  491. > I can sympathize with your frustration. Here's what I can tell you:
  492. > * the Mac LC uses a crippled version of the Apple Sound Chip. So does the LC II
  493. > and Classic II, by the way. Major difference is that this chip can only handle
  494. > monophonic sound output, and cannot support simultaneous sound recording &
  495. > playback.
  496.  
  497. I recently wrote a hack which listens to the sound input device, filling a
  498. bunch of buffers. It then plays back random buffers while continuing to
  499. fill or replace the other buffers. Everything is done asynchronously.
  500. According to the above quote, this is impossible to do on a Mac LC.
  501.  
  502. I have been getting email from several LC users who say that the program
  503. seems to fill the buffers correctly, but nothing is played back. This seems
  504. to fit with the "crippled chip" theory.
  505.  
  506. Is there any gestalt call to see if the current machine has the "crippled
  507. chip"? I would like my program to continue to work the way it is now on
  508. most machines, but use a workaround for the crippled machines.
  509.  
  510.  
  511.     o,  ,,   ,      | Bernie Bernstein                    | ,    ,,
  512.     L>O/  `,/ `    ,| University of Colorado at Boulder   |/ `,,/  `
  513.    O./  '  / . `, / | home: 303-444-3168                  |     / ` `  ,.
  514.   ,/   /  ,      '  | email: bernard@cs.colorado.edu      | /        ''  `
  515.  
  516. +++++++++++++++++++++++++++
  517.  
  518. From: REEKES@applelink.apple.com (Jim Reekes)
  519. Date: 8 Oct 92 19:40:09 GMT
  520. Organization: Apple Computer, Inc.
  521.  
  522. In article <bernard-061092095702@kashmir.cs.colorado.edu>,
  523. bernard@cs.colorado.edu (Bernie Bernstein) wrote:
  524. > In article <1992Oct5.022712.3448@news.cs.brandeis.edu>,
  525. > dan@chaos.cs.brandeis.edu (Dan Schwarz) wrote:
  526. > > 
  527. > > In article <w=mz_wc@rpi.edu> johnsd2@rpi.edu writes:
  528. > > >I am having a problem with an extension I am writing. This extension
  529. > > >is really a background app (type='appe'), which plays sounds asynchronously
  530. > > >in the background (which sounds are specified with annother program, that
  531. > > >works);
  532. > > ...
  533. > > >This strange freeze happens on a friends LC whenever
  534. > > >the sound is played, even  from an APPL. (but only if its
  535. > > >asynchronously)
  536. > > 
  537. > > Speaking as a programmer who has done some SERIOUS sound manager hacking,
  538. > > I can sympathize with your frustration. Here's what I can tell you:
  539. > > 
  540. > > * the Mac LC uses a crippled version of the Apple Sound Chip. So does the LC II
  541. > > and Classic II, by the way. Major difference is that this chip can only handle
  542. > > monophonic sound output, and cannot support simultaneous sound recording &
  543. > > playback.
  544. > I recently wrote a hack which listens to the sound input device, filling a
  545. > bunch of buffers. It then plays back random buffers while continuing to
  546. > fill or replace the other buffers. Everything is done asynchronously.
  547. > According to the above quote, this is impossible to do on a Mac LC.
  548. > I have been getting email from several LC users who say that the program
  549. > seems to fill the buffers correctly, but nothing is played back. This seems
  550. > to fit with the "crippled chip" theory.
  551. > Is there any gestalt call to see if the current machine has the "crippled
  552. > chip"? I would like my program to continue to work the way it is now on
  553. > most machines, but use a workaround for the crippled machines.
  554.  
  555. All of this talk about a sound chip being "crippled" is off target.  The
  556. Mac LC was designed to have the sound chip that is does.  It wasn't
  557. crippled.
  558.  
  559. The Mac LC has Sound Hardware that mimics _some_ of the functionality of
  560. the Apple Sound Chip.  It cannot do stereo.  It only has one FIFO.  This
  561. FIFO is shared by both input and output.  You cannot record and playback
  562. at the same time on a Mac LC because of this.
  563.  
  564. We've added a Gestalt bit to determine if the machine can do this.  It's
  565. in System 7.1.
  566.  
  567. /* built-in hardware can play and record simultaneously */
  568. gestaltPlayAndRecord = 6,
  569.  
  570. For older system releases you can check if the machine can perform stereo.
  571. If this is true, then you should be able to record and playback at the
  572. same time.  Always check for the gestaltPlayAndRecord first, since this
  573. is alway more accurate than the gestaltStereoCapability flag.
  574.  
  575. - -----------------------------------------------------------------------
  576. Jim Reekes, Polterzeitgeist  |     Macintosh Toolbox Engineering
  577.                              |          Sound Manager Expert
  578. Apple Computer, Inc.         | RAll opinions expressed are mine, and do
  579. 20525 Mariani Ave. MS: 81-KS |   not necessarily represent those of my
  580. Cupertino, CA 95014          |       employer, Apple Computer Inc.S
  581.  
  582. ---------------------------
  583.  
  584. From: kamprath@space-grant.sprl.umich.edu (Michael F. Kamprath)
  585. Subject: Execution timing of ODOC
  586. Date: 5 Oct 92 17:05:20 GMT
  587. Organization: University of Michigan, Aerospace Engineering
  588.  
  589. Whenever I send my application an open document event from outside the 
  590. application, it will not actually open the document until I bring the 
  591. application to the front.  How do I get the program to open it imediately
  592. while it is still in the background?  I assume this ia an easy one, but I
  593. just don't see it.
  594.  
  595. ========================================================================
  596. | Michael F. Kamprath                   | The University of Michigan   |
  597. |   kamprath@space-grant.sprl.umich.edu |      Aerospace Engineering   |
  598. |   kamprath@engin.umich.edu            |                              |
  599. +---------------------------------------+------------------------------+
  600. | This country is a _democracy_.  It is NOT a "Two Party Sytem."  DO   |
  601. | NOT believe The Lie that not voting Republican or Democratic will    |
  602. | waste your vote.  Vote for who ever you please, and let the          |
  603. | politicians find out what a democratic government is all about.      | 
  604. ========================================================================
  605.  
  606. +++++++++++++++++++++++++++
  607.  
  608. From: schulte@KLIN.FAR.RUU.NL ("Bas Schulte, Spider")
  609. Date: 6 Oct 92 00:29:01 GMT
  610.  
  611. In <0q3-4l@engin.umich.edu>, Michael F. Kamprath 
  612. <kamprath@space-grant.sprl.umich.edu> wrote:
  613.  
  614. >Whenever I send my application an open document >event from outside the 
  615. >application, it will not actually open the >document until I bring the 
  616. >application to the front.  How do I get the >program to open it imediately
  617. >while it is still in the background?  I assume >this ia an easy one, but I
  618. >just don't see it.
  619.  
  620.  
  621. Hmm, your ODOC handler might do a SetFrontProcess to your app's process serial 
  622. number to do this, but I don't think it is always a good idea to bring your app 
  623. to the front when it receives an ODOC event (Apple?),
  624.  
  625. best regards, 
  626.  
  627. Bas Schulte.
  628.  
  629.  
  630. - ----
  631. This is getting better and better!
  632. from: schulte@klin.far.ruu.nl
  633.  
  634. +++++++++++++++++++++++++++
  635.  
  636. From: minow@Apple.COM (Martin Minow)
  637. Date: 8 Oct 92 14:45:44 GMT
  638. Organization: Apple Computer Inc., Cupertino, CA
  639.  
  640.  
  641. In <0q3-4l@engin.umich.edu>, Michael F. Kamprath
  642. <kamprath@space-grant.sprl.umich.edu> wrote:
  643.  
  644. >Whenever I send my application an open document >event from outside the
  645. >application, it will not actually open the >document until I bring the
  646. >application to the front.  How do I get the >program to open it imediately
  647. >while it is still in the background?  I assume >this ia an easy one, but I
  648. >just don't see it.
  649.  
  650. Make sure your application SIZE resource flags include "background NULL
  651. events." The value 0x58E0 seems to work for me. Your initialization
  652. sequence ought to include something like the following:
  653.         FlushEvents(everyEvent, 0);
  654.         /*
  655.          * Clean out event queue -- see Tech Note 180.
  656.          * Calling EventAvail tells Multifinder to bring
  657.          * the application to the front. It is needed
  658.          * especially if canBackground is set in the
  659.          * size resource, but harmless otherwise.
  660.          */
  661.         for (i = 1; i <= 3; i++)
  662.             EventAvail(everyEvent, &EVENT);
  663.  
  664. Hope this helps.
  665.  
  666. Martin Minow
  667. minow@apple.com
  668.  
  669. ---------------------------
  670.  
  671. From: resnick@cogsci.uiuc.edu (Pete Resnick)
  672. Subject: ICMP
  673. Date: 5 Oct 92 04:02:02 GMT
  674. Organization: University of Illinois at Urbana
  675.  
  676. sdorner@qualcomm.com (Steven Dorner) writes:
  677.  
  678. >Reporting ICMP unreachables is fine.  *Acting* on them is another matter. 
  679. >A single ICMP unreachable means very little, and should be ignored.
  680.  
  681. I disagree in the case of a TCPActiveOpen. Any good program, I would
  682. contend, should immediately give up on the first ICMP destination
  683. unreachable on an open. If the user wishes to attempt the open again,
  684. that is fine, but that is better than trying to second guess the user
  685. on how long is OK to wait. Providing a user configurable timeout is
  686. fine, but waiting for TCP to time out is not. Not that UNIX should
  687. *ever* be taken as gospel, but as an example, most UNIX TCP programs I
  688. know abort the open attempt immediately on an ICMP destination
  689. unreachable.
  690.  
  691. >A series of ICMP unreachables is probably meaningful, but it's easier just to
  692. >report the problem and let the user decide to cancel if he wants to.
  693.  
  694. Easier, yes, user friendly, I'm not convinced. My gut says that a good
  695. program should have some set default (perhaps 5 destination
  696. unreachables in a row) before aborting the connection and reporting to
  697. the user some network trouble. This should of course be configurable
  698. for power users. I find, for example, Eudora's method of reporting:
  699.  
  700. "ICMP destination unreachable. This may or may not be important."
  701.  
  702. confusing to the average uninformed user, and certainly not telling
  703. the user when it *is* important and what to do if so (i.e. cancel,
  704. continue).
  705.  
  706. Maybe we should move this to comp.protocols.tcpip if it continues?
  707.  
  708. pr
  709. - -- 
  710. Pete Resnick             (...so what is a mojo, and why would one be rising?)
  711. Graduate assistant - Philosophy Department, Gregory Hall, UIUC
  712. System manager - Cognitive Science Group, Beckman Institute, UIUC
  713. Internet: resnick@cogsci.uiuc.edu
  714.  
  715. +++++++++++++++++++++++++++
  716.  
  717. From: pirard@vm1.ulg.ac.be (Andre' Pirard)
  718. Date: 7 Oct 92 11:54:55 GMT
  719. Organization: Universite' de Lie`ge (Belgium)
  720.  
  721. In article <BvMr7F.1ys@news.cso.uiuc.edu> Pete Resnick,
  722. resnick@cogsci.uiuc.edu writes:
  723. >for power users. I find, for example, Eudora's method of reporting:
  724. >
  725. >"ICMP destination unreachable. This may or may not be important."
  726. >
  727. >confusing to the average uninformed user, and certainly not telling
  728. >the user when it *is* important and what to do if so (i.e. cancel,
  729. >continue).
  730.  
  731. Perfectly right ;-) Seeing the (French translated) message "An ICMP
  732. message was receive. This ...", a paniced brave lady phoned and told me
  733. that about any message she receives *is* important.
  734. However, I wouldn't blame Eudora, she copes perfectly well with all the
  735. rest.
  736.  
  737. On the more serious technical side, the other remark is true.
  738. A program may shorten the time to *open* a connection by receipt of
  739. ICMP(s), but it certainly must let the user decide whether to close one
  740. that's open or to give him a chance to go to the machine room and fix the
  741. cable instead.
  742.  
  743. - -----
  744. Andre Pirard          SEGI, Univ. de Li`ge         139.165 IP coordinator
  745. B26 - Sart Tilman     B-4000 Li`ge 1 (Belgium)            +32 (41) 564932
  746. pirard@vm1.ulg.ac.be  alias PIRARD@BLIULG11.BITNET
  747.  
  748. ---------------------------
  749.  
  750. From: tomh@wes.on.ca (Tom Haapanen)
  751. Subject: CountAppFiles --- and starting a child process
  752. Date: 7 Oct 92 00:06:24 GMT
  753. Organization: Waterloo Engineering Software
  754.  
  755. My Mac app is progressing (thanks to those who helped me out at an earlier
  756. stage), and my collection of Inside Mac volumes is growing.  :)  However,
  757. I have run into some more roadblocks.
  758.  
  759.   - I'm using CountAppFiles as described in both Inside Mac and Macintosh
  760.     Revealed.  However, no matter how many files I drag to my app, or how
  761.     many data files I try to print, the second parameter gets set to 0.  The
  762.     app starts up fine from double-clicking on a datafile, but there is no
  763.     filename that I could open.
  764.  
  765.     My Think C 5.0 code fragment:
  766.  
  767.       short iWhat, iCount;
  768.       CountAppFiles( &iWhat, &iCount );
  769.     
  770.     iCount gets set to 0, and iWhat seems to get set to a random value. 
  771.     What's going on?  (I'm running System 7.0.1 on a IIcx.)
  772.  
  773.   - I need to start up a file browser to view my output files.  In another
  774.     environment I'd use spawn() or system() or WinExec(), but I can't find
  775.     anything in the manuals that'd start another app without closing the
  776.     current one.  Surely there is a way to do it, right?  (No, the app
  777.     won't need to run on System 6.)
  778.  
  779. Any and all help, hints, suggestions, tips and sympathy are gratefully
  780. accepted!  :)
  781.  
  782. [ \tom haapanen    "i don't even know what street canada is on" -- al capone ]
  783. [ tomh@wes.on.ca                   "trust the programmer" -- ansi c standard ]
  784. [ waterloo engineering software      "to thine own self be true" -- polonius ]
  785.  
  786. +++++++++++++++++++++++++++
  787.  
  788. From: chuck@gte.com (Chuck Hoffman)
  789. Date: 8 Oct 92 13:07:46 GMT
  790. Organization: GTE Laboratories
  791.  
  792. In article <1992Oct07.000624.14905@wes.on.ca>, tomh@wes.on.ca (Tom
  793. Haapanen) wrote:
  794. > My Mac app is progressing (thanks to those who helped me out at an earlier
  795. > stage), and my collection of Inside Mac volumes is growing.  :)  However,
  796. > I have run into some more roadblocks.
  797. >   - I'm using CountAppFiles as described in both Inside Mac and Macintosh
  798. >     Revealed.  However, no matter how many files I drag to my app, or how
  799. >     many data files I try to print, the second parameter gets set to 0.  The
  800. >     app starts up fine from double-clicking on a datafile, but there is no
  801. >     filename that I could open.
  802. >     My Think C 5.0 code fragment:
  803. >       short iWhat, iCount;
  804. >       CountAppFiles( &iWhat, &iCount );
  805.  
  806. Tom,
  807.    The following routine is from a sample application I wrote.  THINK C
  808. release 5.0 - 5.0.3.  It works fine.  The only difference I see is that I
  809. defined the count as an int, instead of short.  I'm making a bug fix to the
  810. app, called "Chassis" this weekend.  If you want a copy, please send me a
  811. mailing address ("real" mail, not e-mail) and I'll send it to you for the
  812. low, low "price" of asking you to beta test the bug fix.  I'll put it out
  813. on the net after it has been tested.
  814.    Sorry, can't help with your other question about spawning or attaching
  815. other processes.  I doubt that the Mac OS can truly do that, but there may
  816. be some fakey way.
  817.  
  818. Chuck Hoffman
  819. chuck@gte.com
  820. GTE Laboratories, Waltham, Massachusetts, USA
  821. (617) 466-2131
  822. =====================================
  823. I'm not sure why we're here, but I am sure that while we're here we're
  824. supposed to help each other.
  825. =====================================
  826. /************************************************************************************/
  827. /*    FinderFilesProc                                                                    */
  828. /*                                                                                    */
  829. /*    If the program was entered by the user's selecting one or more files,
  830. and then    */
  831. /*    using "Open" from the Finder menu (or command-O, or by dragging the file
  832. icons    */
  833. /*    into the application program icon (System 7)), open each of the
  834. files.            */
  835. /*                                                                                    */
  836. /*    If the program was entered by the user's selecting one or more files,
  837. and then    */
  838. /*    using "Print" from the Finder menu (or command-P), then for each file,
  839. open it,    */
  840. /*    print it, and close it.  After this has been done for each file,
  841. quit.            */
  842. /************************************************************************************/
  843.  
  844. #include "MyHeaders.h"
  845.  
  846. int FinderFilesProc ()
  847. {
  848.     int        FFRetCode = 0;
  849.  
  850.     UseResFile (initResRefNum);                        /* for H/P printer                */
  851.         
  852.     appIndex = 1;                                    /* initialize                    */
  853.     CountAppFiles (&appMessage, &appCount);            /* How many from Finder?        */
  854.     if (appCount > 0)                                /* if 1 or more                    */
  855.         {
  856.         if (appMessage == appOpen)                    /* if they are for "Open"        */
  857.             {
  858.             for (appIndex=1; appIndex <= appCount; appIndex++)    /* for each one        */
  859.                 {
  860.                 appMenuLong = ((0x010000 * FileMenuID) + OpenItem);    /* menu parm    */
  861.                 WorkRetCode = MenuProc (appMenuLong);    /* do "open" menu item        */
  862.                 if (WorkRetCode != 0)
  863.                     break;
  864.                 ClrAppFiles (appIndex);                    /* remove from Finder list    */
  865.                 }
  866.             }
  867.         else
  868.         if (appMessage == appPrint)                    /* if they are for "Print"        */
  869.             {
  870.             for (appIndex=1; appIndex <= appCount; appIndex++)    /* for each one        */
  871.                 {
  872.                 appMenuLong = ((0x010000 * FileMenuID) + OpenItem);    /* menu parm    */
  873.                 WorkRetCode = MenuProc (appMenuLong);    /* do "open" menu item        */
  874.                 if (WorkRetCode != 0)
  875.                     break;
  876.  
  877.                 appMenuLong = ((0x010000 * FileMenuID) + PrintItem); /* menu parm    */
  878.                 WorkRetCode = MenuProc (appMenuLong);    /* do "print" menu item        */
  879.                 if (WorkRetCode != 0)
  880.                     break;
  881.  
  882.                 appMenuLong = ((0x010000 * FileMenuID) + CloseItem); /* menu parm    */
  883.                 WorkRetCode = MenuProc (appMenuLong);    /* do "close" menu item        */
  884.  
  885.                 ClrAppFiles (appIndex);                    /* remove from Finder list    */
  886.                 }
  887.  
  888.             appMenuLong = ((0x010000 * FileMenuID) + QuitItem);        /* menu parm    */
  889.             WorkRetCode = MenuProc (appMenuLong);        /* do "quit" menu item        */
  890.             }
  891.         }
  892.  
  893.     return FFRetCode;
  894. }
  895.  
  896. ---------------------------
  897.  
  898. From: chrism@col.hp.com (Chris Magnuson)
  899. Subject: Disassembly with source in MPW?
  900. Date: Wed, 30 Sep 1992 17:01:19 GMT
  901. Organization: HP Colorado Springs Division
  902.  
  903.   I must be overlooking something here...how do you get dissassembled output
  904. with source code interleaved in between?  I used DumpObj to get something
  905. of the form:
  906.  
  907.  00000000:   4E56 0000     LINK A6,#$0000
  908.    more assembly follows...
  909.  
  910. and the source lines are located later in the file.  Is there a way to
  911. get the source lines in the same listing as the assembly code with MPW?
  912.  
  913. Thanks,
  914. chrism@col.hp.com
  915.  
  916. +++++++++++++++++++++++++++
  917.  
  918. From: keith@taligent.com (Keith Rollin)
  919. Organization: Taligent
  920. Date: Wed, 30 Sep 1992 20:45:13 GMT
  921.  
  922. In article <1992Sep30.170119.412@col.hp.com>, chrism@col.hp.com (Chris
  923. Magnuson) wrote:
  924. >   I must be overlooking something here...how do you get dissassembled output
  925. > with source code interleaved in between?  I used DumpObj to get something
  926. > of the form:
  927. >  00000000:   4E56 0000     LINK A6,#$0000
  928. >    more assembly follows...
  929. > and the source lines are located later in the file.  Is there a way to
  930. > get the source lines in the same listing as the assembly code with MPW?
  931.  
  932. There's a guy at Apple who wrote a tool to do this. The System 7.0 guys
  933. used it to figure out what high-level code generated the best object code.
  934. I'd send the tool to you, but the one I have is old and doesn't work with
  935. MPW 3.2. Perhaps someone at Apple can make available the most recent
  936. version, or you can try to duplicate what he did. I recall that the tool
  937. was pretty small (10K or so) and worked from .o files created with -sym on.
  938.  
  939. - -----
  940. Keith Rollin
  941. Phantom Programmer
  942. Taligent, Inc.
  943.  
  944. +++++++++++++++++++++++++++
  945.  
  946. Organization: Stanford Linear Accelerator Center
  947. Date: Thursday, 1 Oct 1992 01:16:13 PST
  948. From: Nobukazu Toge <TOGE@SLACVM.SLAC.STANFORD.EDU>
  949.  
  950. If you are willing to shell out $350 or so, then you can use Steve Jasik's
  951. MacNosy and Debugger.  What you do is to compile and link your MPW program with
  952. - -sym on, start your app, then jusp into Steve's Debugger one way or the other.
  953. You will see a source listing that the program is executing.  If you click
  954. on the window while holding down the command key, you'll get an assembly
  955. listing with the higher-language source interlaced.  You can save the listing
  956. to a text file.
  957.  
  958. It is very much round-about and somewhat ugly, but it works.
  959. (You can do the same with Think C projects).
  960.  
  961. If someone has written an MPW tool to show assembly + source listing,
  962. that's certainly much nicer.
  963.  
  964. - - Nobu Toge (ex-SLAC, now-KEK)
  965.  
  966. #include <StandardDisclaimers.h>
  967.  
  968. +++++++++++++++++++++++++++
  969.  
  970. From: Manuel Veloso <veloso@husc9.harvard.edu>
  971. Date: 1 Oct 92 09:04:07 EDT
  972. Organization: Harvard University
  973.  
  974. In article <1992Sep30.170119.412@col.hp.com> Chris Magnuson,
  975. chrism@col.hp.com writes:
  976. >and the source lines are located later in the file.  Is there a way to
  977. >get the source lines in the same listing as the assembly code with MPW?
  978.  
  979. The tool's name is (was) UltraSlimFast, by Nick Kledzik. The one I've got
  980. is dated
  981. 10-Oct-90, but I'm pretty sure that it still works. The one thing about
  982. it is
  983. that you can't have (or must, I'm not sure) string constants embedded
  984. within the
  985. function (option -b, -b2, -b3); if they are (or aren't), no listing of
  986. the code is
  987. generated.
  988.  
  989. Here's the file, UltraSlimFast.cpt.hqx. The author said it was acceptable
  990. to pass
  991. it on...
  992.  
  993. - ----------------
  994.  
  995. (This file must be converted with BinHex 4.0)
  996. :%99XG(*K8faTE8CKFh3ZBh"d!&""3e4$8%08!!!!!$K3!!!!!+!N!3&6RJ!!0mf
  997. !4QGSChKiD(PSDAZ+HBU+Q'PkHSTkLBGhHSZEQBbCLSKQD)L(H(TjH(ThHCTkRCf
  998. A@BL(CTLBGhGYGhLUQSf+I(L+UBH*QTV)HjQ!VDfFV+ZEMDbEQCZjUiUGR+ZEMB#
  999. XHBZGZTfUN!#3!)UCLDLCLTQEQUfEZCb3!*LDMCZ0S)Z,LBBJ!!%c4&CRCiQ)QTU
  1000. DQUUm`,`!`!#m!-$!!!!!!!!!c!a!)d99CQCRCRGhGhKiH)KhLBL(LCL)L)Q)Q*H
  1001. )LCQSU*LSQ*LBL*L*LCL+QBQ*QTQEUDU*V)N*QUUCZjR+UjQBZS3M!*YZ*#&i!N2
  1002. ak(Im#VfGjXZdQrqZkSrDdB(5@"hf0ePD2YX6+b1l[m6GBZdl[*bSiAGVHhq!!Nf
  1003. 0#01MCMj%)ErJ61,hr*hi%5Eh@iH6XmEFhZ2Nr3l48YpA)h@9KhH-`0bFVZmV$Qp
  1004. Rp+EYm1MMj'(XFIFiDM1JB[-2%bF0@-N))+%k23k&JjZ1l8FlDm`0VGcGRYYTClV
  1005. 'Tlc+fQka-0&6XF6(bF-%i3Mm)"2`3KDGJ"(I$H6DVqcBDk%EbHI+maJ4e@Hd)q0
  1006. J4,dc3MX'K(FX#0*@0#1iD%03'Nk$!LChV3Mm,!Mq6-D%H%d)qqd)mTS4qCS4b@K
  1007. (Z0#1H`)dXGS4AY#05d)eV3LkD%8@K$@!d['D%Hq`)q8diq9FY#-4S4il3Mdf"&K
  1008. Tf"%)!4(!M)!LU!Mh@"%E,B%4l"J49DjJ4S+$!L5Mb!)d1jB%9ZpB%D*(F!4+V@K
  1009. (VX#0'dJVNI!LS4F5"-)iJ#*#2!3)TY#1S`)NkpJ49Y'+[JY#2&D%HL`)Ka!)d!d
  1010. #1)3)jV3K)3!4*eE3K&J"#X"*(8E*S4`'"%G*#%#%Li!LU4f!%511`)d#3`3)43!
  1011. 4*4U!)Uq+`)dAef"%)@(H%`&PHG[#&Y9fYV#Xp2N!Ke923mE0a+qE9j%rPEr)VFl
  1012. Icq4#Tp+G#9&A!TEmTd)@ZS[1kYIk,cHIG[0V3SAHc`0YFl2"+I`MVRhSeCCid+`
  1013. 5NUK5TbV'VpcbED0HFHTpqhe&KQ8+8fVpcK@d!3i0[U1XR3M)*Hq`5bP%Sp#PE9B
  1014. (89$UUlrbPjPjh8h#[GYHFV`,cYZe99P!&jfp6Sh2[9F-Z&$D4DrraQcFD&EEbH8
  1015. ,T'NS6jP[#(CaUIr$ME2&VVI3A1IbXfeK6YraCN8YJGN6mlIJP@qhQAfdTeA'fQ*
  1016. b,5iKAAIq82F4AGbLZ48i'f&Sac9$qUfYB9Z`(f$2F#f*S!BimbYB-@i-B-lB)iL
  1017. M0e(+rSY*d+jiLYDk496Th2[952NVGF'P#G,Vq41al*!!)[ThdYT8kH[J0*9SiEV
  1018. 14#E#&pFEU6qI'UG2(q#hNS,@'B28ch%jpkklDr`0VY2VAq"IE@mZ(Y35K39Z[&*
  1019. IA#*lMA',B-3@XUpLLHmf@4jhfd[VL,h%)0B&AKM,Adr1R[K8*$clepXqefhEl2B
  1020. lDllEYEbrBU,DV)E)i+cKeH4U[-R8GmVc%VZD@mir8lUee#%&1[Ga*8l6M6k-QE9
  1021. l,-Y@33@`3&QXQeI+rSYS1c#jTT!!Hq6mL#@Nhd,+(9U1@#$QN9l#L(@1a"bC61R
  1022. hidZ"YHi,4@d[pRJ$@V'!eAA3VYmJB4KI3K@JGkE3k3V&Cl5Lc!c!3-)dUpLDc5%
  1023. RDclpNBh55P9PaUF1[RI*lY[9h1Ia[,jPVL6TZ,c0BJGE)k$A3KU+PjajHQrcc,1
  1024. R@35%ee1T@!%DZ%E)Y"q8H+YZ[,q6hD-MVl[j2G)L[c-TBAQmiGaXm$CGYfYlY0V
  1025. Gl1mRpVXdHGe8T(%D[#!U3Uiq&3Ehk&Tl2Jd,6QS#IDZFAQq#0P,!6ZER&q6iEDd
  1026. q6hD&+mmZ2fG#dkP4$$fXj"LjaDL9T+J0EG"!#1iPK&FjP,6hmkP#()8'r6f`$4[
  1027. f)'9AF43NqRFlfVjD(JjD+R'if&4l`%[1D*ARDBAbG0!bhY2NkGk6R$UV5T!!cXA
  1028. j1RREk'Kf%,R&pMI"4N6qGl'qe%Y@!ir9E,Bmlj1T6f&Mkre24*[0l9kmC$U"0"%
  1029. FL+[jhbjhbG3'Tc&4eAqLVU[SIe-EU0jAAiAbH[m[I3MG5S0*UQ,DkR8C)+4e&0,
  1030. Flf6cfRhN+I3J+b5eaR9F4ihAF[EGB3(-EMUZ1mELZm,Bmlp[JZfiNm'jaIfN21U
  1031. ZAMFIYm&"DjaIC3Dj-[88ZqZL+kP@$GHq0eiFm3MT*GRXHGl,Y*!!4)F0Lq!D0jP
  1032. eK8YEFi[-S#ZNU-Ee3j`Q81e'ZKBV3YjFI[8%!)b)SD#bl3I"lI%(T5%HPS*#2`j
  1033. [fR6l1aHi(Hbf6ce`3i[DB[Ym6fr[X3#bjFm20!L'NIRS@RYIGZGlS"9*!LZZdGj
  1034. G$pXH%%9NEf[ZSmVPEk'NC9'RmkT"DT8dUPDa&Sb'J4D0,2h5XaIG"l'03Sa,"MS
  1035. a@lpM,F[SbqDJarYlD'4(B0p5NAi$44A1pNHBaUY(aA69A6'SIG0IlIKQkMpIP[`
  1036. ahqh!kr#pV`TYTlAK""dEVbrDm+LULPMcU@VYl6fq*V)AmrBmLUplhTfajhYjdrr
  1037. qK$VlRf1qQL1Qi[XGpef,mR4K)[NC5&9[A`B@0Tl@G2$6c10#'0HXN!"[D6(!FTf
  1038. %R%IZ'4m&64kN'pVL1`j)pNMFpVL'*GjIYCepQ*8kLiM('-`0[pY82LE1Yd[EBK+
  1039. N(`K%D3V-F)"2!PJ44*J(jUr2%edH8p*VlLbeF)2[!Sl4qR)GILqeRFhJ2'bkqGc
  1040. FYph"+M2!Ic#,+4T+8XK*P@0TmR2mcb)52r2cmq0mZGcH#M!&K,mL$NfdjZAaXl%
  1041. V94fE&#(i@Lh!"D%2Z$VXe4+ARHAcH"fNlj1R&Z4!CY'qeK)-PckK3RmlfZ*AfmZ
  1042. &e3hHYb0#JTX"h9Ejfak8HmYZZf(A*dkJ3q$@I+plDhmrcCq0,eNIr6Dl+IkReG"
  1043. f8Z0@Q&KlIqAEqIQ4SjNM$3CYq6'*0F6*F5+Y4JST#!`Z1$5f5,kPUAhLNIH2D+j
  1044. IQ-U+hH)4r[*e%XcL'&DDVScb4qF&SC`NKm8,IIaiI*m6rPNRmbC0VHGeRh8+AF'
  1045. 0&D9)f9EqE2qU4C8VTj+Kr(-GbSG(X(jG!r5QLr!f`Cl+@$(8lKL@8+6E'ALPTL(
  1046. 4q"SGiEPT`GTpUMC)C1VSc(4Ef&Uq&jHFHVmJ"2+[0iQ,jiADpYHA'c6&qfe#kK$
  1047. bZbQlV*Qif2P6HlQl,HBY2EEI[CZ24!fLGQ+EZ-I&TJ4ZCTV2Gj0[jqbfFh*qcLl
  1048. I(a-Qe-b*1e1RD*Ql,$a-VZqcQf6!lE8D16KjACf@N9"SQk12[-EFpR0XBeM*38q
  1049. PB`Phq2[-MFBGqQXaLiH0PGR$UYMMif8"@5,p%"@GVMlRH+@9E!VXfjIeKGHAk[2
  1050. Sllkh$YYGXGYXYRFi[UrKmRqQc`TXUPhREF2bH*fh$YTANrMYp3A4X'IcSDUaaHA
  1051. AI0ZB5V5lUG-0*9jap$P6G4pE-b*&jakVTDZ%9Q'(&QQF*0[CYTk[2rcc,HhV*&c
  1052. RfX*ZMe-lQISZXfP([2%[KDFJ"-Ee!Zrq,[iV$2UI#N$[Zi@&XDH*[-RDifkbR-k
  1053. #-V48ZjHQLraDd9bqc4De'@H-&IKdkBD5q@'4-1Q#c+R24J[!h19Mj'6KB@dqZjI
  1054. NrPX0AD`X#55K0(H6Ib'D9'Z[1UY,5eH4'j)%8E+Ehe9TC@GfYlFGV4X%$,SVP8U
  1055. j!UEhN!#4GAY+1PdVeHK5h-rRF[dGMdG$,TeFhf%kA&[l##9MLqVe,(KAA"SbTS&
  1056. @aP)51IJm1kr*#95V$1kP8idh-!k@SG,QqAk[8!k[81Vj[PmZ1C[hB8ib++)e*A&
  1057. aEfRUp(MAY+9EDilY43C'lR"iFrRHVdE%),(G3N%BbYeei@F[6Z'`(4r9k6d(5I9
  1058. kMd(9[,MhA"TD[8M845VEUaUUr"iIl1Q1Qm5Mcp6LmZ1`@UZSl&REL"ZZNr`iKdr
  1059. ,b)6D@0pEKdqq6Xf5I4kr#jGK4(%GqVL)F6"iEK9Cpj!!QjF2Vk#E9f--rT`X,QI
  1060. b9"U"V+%9eKBeGP'85SHJS03SHT`*r2X)E(S9N!#RS'4#AfEqE0a[chR(kI2C&-5
  1061. 'HP8pp*!!c0`Vl!FQ+1Z)9V+P62*!%CC1aPHEclQ(hb$l0,64**!!A([`m++9GH*
  1062. 5N6Eqmc[fG-Q'"Em[kX2iEVbqATk9D"fRki[R3VVVbr@Md8%+kEHhQG&A8ieXCRR
  1063. ,q!LUZlhKkNT!1-*Xe8V&*FFlQFJK*SLZ9iD`Nd[ph1jRRBIa1'(JB@&Z-6$l['h
  1064. LDLJC&26@0Tk9L%'GKB@kaMJ!a-6BZ%kP$&CZ-GLXQfd*&ME$USpP$d22Qd,+-3#
  1065. clQGbFrPcdJ0q[NcDbbe&j[!NN!!@'Ra#ZQaRBKFqp*KUSGl(f@CUi`$Em)02GGq
  1066. JKrpF&"!er)RKGVB)SVUK4drBQJGFcU8M-mrX)A0#hUN#,'1JT&Bf5ML-"UBf4$[
  1067. ZUjI!rAQHT[q0p[&NChflk0p6dUR2%aTa-B8hkYcb[EkG1&jqY&"4MP!@2#4GJTH
  1068. IVC8@US&4DX)P+fM@6qGkh6kqjjD4'9Y!R!bid8Mpr"[XfR'cq$5rM6*4[h,Y-G6
  1069. 6B2$ZrLKRe1LVlXRG8X,Fd6($4ph'rY+8aC%KM@eY!XV3kH$YL`"kFriURTV(K-q
  1070. MM3VSD@KC`d`)5iDIaY&X)64K1-Nk9DGViUF3k1$YVI8)DAR5KEJK0IT#H0S3LVK
  1071. @*$c1&C[0K#fXi6!1me%*FQ`FBF3k`Gi(RjIL'JfpXKGYm(E#Z4T-("fb$PLPD5%
  1072. Z`ZCd[V&TT9bdjT(ipG&,mEA&)j3lapG&(iZZ&-[hd3[(5'f5,"-E#jc',C(S8Y9
  1073. 0R@0c,kbPeXc56-qA'Sp(a24Qk'rR5NVQe-H58(!4,c%,'Q8bE1''Pa5*I[`M&0V
  1074. T8*E"iM5)[VR[K4B[-l%"0B!PVED%c-1kfhm)9l*pZT@i1fZXbLG3L&IHEa(T82k
  1075. LSYY&"Tb2+krI3KeI#jRQd,6QIfJ*q4+Q(-mK3EmDJhi&"P[QFca&$1-S0rb@KVj
  1076. fe[0VJA1cRhT6)KE4VHfK,mrq%+l@%H(q(m)6192ZCe#F"dcNJYbYrE6S5l(86G4
  1077. EI9K)`H'b)`fYL1JMbPBXN!!DXaj*M`@(pG5DE5&YK3V,d+,Zq-G(Bh2dp,Giq05
  1078. QhhGie,$Ql([-2FEZE2fq2NC6+T%"p4ZCFBLq9#9l%)RFk0ekqZ"!@&rPC'kIZJV
  1079. RhZMlNrq%,+hPd,h@3prDpK'[U(BarrhkGMY[aIi@@feZZK-l$f,rC8HP0ZU(FAp
  1080. #MdVIr#K3-hVUSh*Yq"Grj9C8i1TKlh2ca#6EH`j@IBh1Xkce22l'(Q6X52f-Epr
  1081. diT(B6HrlZrf2Hp(1RdTH,+p5GqqjrPQhml'k88Ie-rq9+CQRqE@@feKBAIq99e9
  1082. VKAQmZIHpcRJY0-ZD`)l,+K3VqXcU'*)S6iTYr3XVR8lA@4rqfLlIrmUG1P@hh#*
  1083. (2L"U6BeRKrf`Ql#I$8hIqA99C#L5F%b)c2f2m)@%hke[eQ2f-UG#TM@qXkc(eFU
  1084. H"@T[jpMp4%pa*r%RBYKkRRbmqrR5eYN$'9Da#**e,LjpclfIRj%D+5J43RM2)c9
  1085. H0&,rqDcY``Sb+fI#0U*m00EBj83dSJ+T'!+hfSmDlYFbmrp+F,E3r4cimfm-#D,
  1086. q+$(p2@f[#[1P8q!$-,aY3"AZ+&GGDjRHbD(rX#(+!6p+&3,63-ce0V&6Ec9,2QJ
  1087. 9j5KAcR4YiS#F4*E&',@aRJK`E(#PL'Sb2'K&(r($AjPjqYd*4J5M2BP@!P@2BP@
  1088. JP@[BP-"+BJNjA8+jeC!!X2'M(,0@Ti[-$KhR+qTjm8HpmplVl63SPMrLY0ehe#0
  1089. c[)DZKj%,@kM#8Ma4r'UK!6%(V(b$K+lUa`[EkBN%8h'%*aK#9bf1T6,(3J02idT
  1090. $5Ilm*SF9P1AieUrdFE%0&iMJd3QmE4SLRXqFFj+KB+i$6q0-#3k@&MKGc`hb4H0
  1091. B)1)``hbX-qa*A3X&+Y@U-YI'f3B5d+#TBkJjaDq+2ipHp3ZNdkcLa45+GCim6b)
  1092. 6Lk%+0#f)6dNch%m[QT)3@RdkRYpY`lR'UHP6KU%mlAMkr8DhmP6pk1XQrNUG2k9
  1093. a#[A1QAbc$V*9jbXfj1,RYpYGVeDZ$ED)4&Cp)4P6m0S*DTqB5Ri+&V8mC8a`@TM
  1094. krdX+%`alZ!e%9U)MCE-r0RCTI#NFU00,9([91I3Z*r5M9eMB'kpRkU`Sb09Sr&h
  1095. qTfD8hVE4@dEZi3r1P'9[BDq`1fTi[I3X,#aN4id1UV*#CrhlTmb`V0r$48T(lYr
  1096. - -X-U-#eA5dYIB9R!!LZrG38+VJHi&IBEic`SEHXlq(9!KhqQX0MrVJ`XYU'@JTDE
  1097. 9Q,a$D&6b25NiYCqh`iV,pYp&0rE-LdmVIQ'&V-1@@P)hM@TZIHIk[Ra5CRVr8+d
  1098. `H5D8M8k2QH'9@U*@HUAQmhX)T(l[[DD`qTkG6TAQmbS65QeBi9+ceQKMci99+XQ
  1099. FQrc+2aa@&M$hI!T5E(NhqrSp)Xl988HCb8V3AR+2JGV"mQJ`)3Pr3KkGRml#69a
  1100. h@i`M9XbFV)hQi0,[#f@'k#lh(h4f"-M*#hS[qLf0'qK'PkD0UVqj5)qT8jHV!6X
  1101. %q5Y@"1YLM@m8EX)Sdl44l[FiIeqch!MXI%`p&(`AX1h,d(5lQ2pIDAreMdZ4Z1!
  1102. R*!6p)#HS!R0f1f6miBm`"0-!PL!QU!6@"H1QMI[!6i!%q-"1N!!`9,pl&(biSr!
  1103. LMm'+2i-8I`iSrhiSrLa4ra'1p&(mU+2q5+2jN8Imd8IMhXk2m4&*h#!MJ3q4"rN
  1104. JLMr(&(rM&(-,[U498H+UNa99E&99d99-LUY,&9DD+Ukf+UXBUV8a9@UPd+UhU9"
  1105. V1!J)i%2N3Ij))UV@49ABa9ACa9@[LUU%99Y)UUkLUVb+U[SUVYiMdZ9AG49@hLU
  1106. U-99hX99M#fb2UphNBaLfpG06k8*LlC@20bZm6m-PL$QlV'Qph6TiQkh")'#DE-Y
  1107. jYX#ENlbR61NPKlRVY(,qV9HG2a-2)bZZQhf(hHj4#8FM(aArL'QcIVBqmQi[GrC
  1108. QjAfDH'ICr%arXGRSp&)P[8KpC)l"!l'hQ*LD'4Vd#mR+&I@b,PSCMlc+VC'!d0`
  1109. mM)M5-3"-El%H46qaeqbNC95Tc0TXT(I!2G5p*)riaJ*p3"0[#YJJCh88M-LNIFL
  1110. NH&HemML%QY!",ST!9XHqLNIJLNIM"Mb(3a#2i+IjLJjrC&)id8McYP)q#T82%pE
  1111. D#-QfVr*(AEFkZK#15)aY0mkIr0ZS3V[(M@CJU,m@P`"UbR8Y*aXi*U%FHUXY61Q
  1112. k+M)Te)YFG6+9ICRBjP$G`0JMjmk%Lfd9chfjKE5JXk*ZPH&D`T5D&q&NZkrVK)S
  1113. bIRJ`AfV8ae%`-PfQ[ZBp2$aQkPJXTCe9+c%Q'0&$)dUD6NRXDG5piF8kj'+[12(
  1114. r'M!B2$9JY@GTVGL3!1m"V12h-[lV0`H(5VlIVi4dp[LI-,3G&6iD#lq+Xc'GH$[
  1115. paLBq6KZ,+U@h8Ap(dZY"b&2)QVV925kZc6#[k,#c3U@CbPRBI2fN*AclZ%Ydc8T
  1116. 'DI6,EG5k60NjhpF*5lNblFRh-JQKG2-Ifc9LmCU0R2E04h`c8Mq,q'DP[`c8MdA
  1117. jCV[rX&(k[dC`1$,*IqV-5[GXY)m*6b%2LBc%1LeQ*)c%)H[0Nb#r*4MEZ[,pKD$
  1118. aTA+c,IY+b6HIlMXqc6X8@dPdceHM2&m58(d%Z%2E6-H!HH408*VfQ1Z*VJDlfR8
  1119. cJDGcF3a,1G0P12NDd'#0"Gf2dkFKQeJL'ZHqSaRd`NZPTD'!mB#UiUUCbN8hKNl
  1120. rGBqibM@fFiANRmZXAPc+*VI4Y9EfR,QA1IN9pjjF,keKIjYea-@40Vbm98cZ*qI
  1121. - -H3)UYP6JVR[E#5e0Ib[QerqI#XBIjm,PEqijpC!!ZVmrMM2GZdUJme-j6,bN,N5
  1122. 6``LV,UrTDBlU9HU-Uh"bH$RjIeERplpaDmBf(+j"%jk)lDdjGH+V6T!!5[H'f@#
  1123. `4I4r[UeeZ[%`k3`Z+q6L`p(Pc1["J8#+64Ch#Bm#cc*ZLGm6AJi9,$bYVYVe08*
  1124. cF12hS$`eQ[449#Qi[AcZAATZeA[$TA5EYKX+DG'@Tki)2,Kad89abSTSkb`IL-T
  1125. *6((L'I"CMT1A&CU9B[VDDmirqlGkMeY5"Kh@&$0BDjAm3kX*r1MC$Gfk3q1kij[
  1126. 3IH0hrG)iI+l[EiMZXmHr*h(aUiAr"bi49U5LIlbm(KhfEb-h%q-mPh31l&jF+$[
  1127. E%qkEf@4KlAE2@r&9jF,FeQT%kT`Mk(9NLFGcL%23!Lf!MRVp+Z#S0j!!S0rb8'r
  1128. X8'iUJhS+$H8S0jUI95(MU'F43E`3'[3%`9$[`J0I+&H+!ef!Qq$+Q"&Z!Ni"%qd
  1129. 5"#$PH!NXBVVU91,'bkq,[FZZLSjHRLfqAT)Zkbj-AF!TfqAU)Vl,PaAQA(LZX[3
  1130. aE6,N48-[34Dr,P4GQ%RBK*V!)YF[64DV,dX@Tbp(&BjIc)ZY#c6CIbSY+$N`3&G
  1131. PpE&@Jj*!L2PNh9U8aQH',&lZRYVmZXZ2bepV#Zl5ipEAdC+Eb%9CFrS5(A8mcVj
  1132. hV6R$E0`Yi'@1TT8k0Y9QM&,UG&G'K+[R4*5'lMAqmLeJL+259(Te"!G"DQf*NiH
  1133. (ZhaCDbi*CFT66e0)GHA$aEA8IRi12,31YT))F9@3!,`)%$["Y-+TdqfiH[mk202
  1134. Uj),'(B+J0+TJ,!EBT404RKkQijRa91RCl6f!'LMd2PrhrUfr5I&FVKi@&5b-Il#
  1135. Fdf!mQ1UdCk@Q%X8K,"D3!*XLN!#@#FU42j@TLc8TC2-SN6cGpqAp@hq#eedk%*-
  1136. 5-GAPU+8P#MPTl%+&+R[SAIPr9Z2E9YUjJGYj+kNAhCU(d-r0Sb*YA&e[CeH*)*`
  1137. Ub2QrpcPdSE1jrqlE3,%THTJ*$J[FBi,KB9(ZpaZ-2*b9UT*"UV@iGUReaZCF0AS
  1138. )Y,6PmE0aT925T'dZ&GRAfEqrJVadHk9eT`AFLijjaT(iP8i@pQD#@Jj1C4V+G8P
  1139. K++4DAp6Trhp0-NG%e$Z06`SVP4#USSj#YQk$DCRRRM#LeLLfJSfD#hh35Taq0hp
  1140. %qGLTL@U@q-mj'J6MN`6(ke2K0LFpaRSmi*ihXEZbh1kL8I`j5Z9bLBH&"diciAp
  1141. 1-T*ke%,Uqc[dVr)`A8ra!EL*&3lJehq4hHkHA[V8Q`6$U2@YAVJ&H9UF)bSUkKL
  1142. qYVkFTB)3L`$h)HA$J@e@RZBrrrGeCP5!K[EVJTFHa+e26Y$c!SeFfrQm'E9hfCN
  1143. 4r-)mXL4&(b)F$-QhrdCjqXeqE09G0[kF1ZR%M5@`Qilh#`NbaGTY60jDc(c8MZV
  1144. LS"@DR!Qk+Ph*+e@dQ-T,4P#1,QcEqhUqiRCjdj'YGSfM@IE(*XY[DCG!a5V,Hdp
  1145. EAh1HBZ&TkdiZHH0+Z#1M[%FC9@%85*bMTlUiSbP3fK9$Ee3cUe$-DhUm1c1$#2Y
  1146. l(P6VIY$kT*NC9Kh2+rI3LVY@FQ98F##"%D16a&UBKjibA[M$ZYe44il[@R6Eq2h
  1147. P6i8H9V+ZqRj81`M$&4h6k1"pXFCCrG(XHJN9MVC'2hefelXlaalN&afNH`pYP1H
  1148. +JjkU`pqeqR[dk(MNa&FA$,p-qT2BSFp&r6V&IdG2*NAPRQ#iJQ&mRMX&TXE[EAq
  1149. cGD$$,ah%SelYCI-18k%SKKq"fZKPVr)NmN65E,9'XD5C3X*D,!kb",K&Z@Y&VdQ
  1150. UQhpbCTc@Xa,8p6('c8QdT6(DBDL#@#!@3P+KZYG182GPHCeeQ'FG)TRK%T`qBA(
  1151. PaiLe)MN1r`X,ClED1h(&,DX@b4a(Z!RHh@EL-%2Q+)G`q(0+fLp5UfUf0KrYk50
  1152. 9&-*fRE'(9D[5%4(B$JlTCT+9FRpV8iE!SNMm"1E"M26F)mM(+i1&KAqcfIdhHQ3
  1153. j$"icemrCMV")"C!!HRCV)DjPTJXT9"TRYP,8kP$U)L2IjYTF2KmRJAYhY0VGl1p
  1154. fah1ApX0JZf'CpD+PjDkLfUbj4*Qi%fp4K[pHDid#k)6fr,Sq+r6mRM'F+pZpMIG
  1155. YHE'j(T-U#E!"S5)T)%8%rA`TJpE'r!6`1fUPT`d&@k4GGA4V&`Z0,&L*pdbDA'j
  1156. KZl"IC*(aTEeTF(Y`KUfPNii3%rELq66`9Y%RFlhATR36'9P&%Y[VeK)9FNaE%Y#
  1157. 9HCb%a*R("*R+8FRD6hV%#m'jplUR105XhVF!#hkZjcpA$YZ'ZD0M91S!R51K$@(
  1158. rV[`R&!Hc``h[(b+VNm'rhrFm-F!R#d1!p6IkcY,!F",5Z-HB**hURr@+Z!L1"%N
  1159. #+UTre6fP5i&[D63aURM45IT#LUH-5!F'P-AMkm&H2VbiFhAkL+@pLA*eqS(2@D)
  1160. ,3##4r'JK4X(XNr6PmV9)rM5B($ZId8r@ifE4Z8-)b,,A[C9kQYe&(92iA&Hq9a&
  1161. (emJAN!#(!9hhSMHHZ"(TMIH08p3"Z,8jDQR)b)DL-2Ze4VCF(!iG,VEIA#maURZ
  1162. 8A`P2djFE!iF@X4R)k-iD1L3@B5-3N!$pq[e&*m2#r6JF1kZ+4ISYk[93m&BhZb,
  1163. 9KU'Gr5N*YCAAIM5FSZE9c,QhccQLSk9m)6HbKG*UVEY-$Mk)hN)l!bhj%)b-P04
  1164. NXVkh$PekI#5qc&4RJX*1Z`S9V!SS+-1+fkpFX$c(l+6@,e&JU00DYHdCah5mkKT
  1165. P-6",0#6fh$f&V8iY10X&Ur%#,(!5SFG+DES&V[FqTN-ci+16YPldERHL5N&3Z')
  1166. br[EUpaZklEKX$YJC"JJ[J)(59IGVVIA$SVqPf$d40BBDU5lE3B$XhJG$`aMQZ`E
  1167. 44(Tk&hZ#'A"Nl&Qi1jVi+c&TZdd1(M)*q!!LTBL[MeqS*U[B*USp#i%Y-6U0IcQ
  1168. e3J4q[qZ"miNECdX0!U`@SJMaNmAci9aG%[k9Nm9e11lJJ2'V%5&2jN9"rXc(5eq
  1169. SIpXBM[%mCc(H,P$-XG0X98BEZDYLU6M@$eBUdd205UH!RS`jUm1QP*R2J0#DA0P
  1170. lZbECFdldC*HLPlk0&-he9&AEk2&@ZMEcDG9aZ#Cl3H%cNLM)SA%@TH1Hf#D2dXM
  1171. - -0CKlH9hadRZ$5L3HT`QjM`d38-BT$,6&*6A-'Vkp%jEYA6C*$fV5pCj"q00a%8C
  1172. 1d%Qm)(da+re*m3!dT!$2G`!fV1p@f-jHQP,FZP(3)L+5Ac)ZXaGd"RI%q*k)T6l
  1173. %9BYCETTiQR4)[B!Hb5-T*C[4*B[SNMXkk4SPEk9q4-2JaER-3l[EIA&T$!P6LdF
  1174. `8dNAEV[aHA'le[JZB-D',AfpIRhjEmR8kV2`102DK0(&UAilVhd!+K)!DX+5biM
  1175. bjCcF3c*qbma$)(4)b"'6pPh6%F&Xd&R*kNh#PQDkq%T+5LmXaG)FlZL)*j5+8ZP
  1176. [9)M8V-Y'aZYHTPT-#dYUFa20J4,*%d4[2%Nb0`pTmRcSh[QKDlMM@lkIaldp,l0
  1177. (TYe9fZPi*ciELRpPe3R#`3XXrThhKAAb`Xd@Gi6QHq`Xa'qI9RKV-`pGGGa344p
  1178. ,l0rQiMREAE[dm(&`m9a592F9eTTpl!N")`rK!6h!%phbI[)$8qRX$,VmMb3-q,b
  1179. 2`8kT3lrQSe,8-ibMArZ1jpP-`8k)H9iGcYE[Di'cf@eRhHfZ+(EB'"YMVD)V2M6
  1180. (pf[1rC1ZFApR5YYG$`Be!"[a4X[b2kJ5q1R++qYCX)f`edErR6eBR%&[J8@Y@Lh
  1181. fN!"C0K'8HZ'&5%V'V9f(c-,LN@qqK8QeQ[J[prTf(CAeM'6XD[e%mAZBPNe[D9A
  1182. P*M8c9jj%+T[C*McErZH&XHGqcT6IBQqa0[p*[LBNl-S%4iG8S4YNkcS%I6KT*r1
  1183. MeYMIR#,-QhpMIl(ra$5pc`V(el(ecY0fF1Y8'e%fr%Y0Qhjh2l)6(aZNa@3eDC6
  1184. r8"c56S@KFc65jYEcMr*lE@-'D$E+$Ei(Sfh`%A%2Y*ZqSk)X+M)"ePL-KfHZMH4
  1185. VYG$bYIDHVU[aB[UkR@fRUfIi-AeE+hUmlCh1I[qR#2p+G8k&[S19M91J"A4Yj'G
  1186. Y&'*!(I(Eb3Bq-#[iTPGq3Ba,FX[idU`kL-Q+qQL5"5jR[NrDXm+E+6M4ABVXVD9
  1187. j2mJ#DKc-"mRqF`(`)Sr%#hfcGlkANC+p)[QT-"i@balh)2ND[[1@4VUHkXMAaG6
  1188. S6qGqclQajHXpFFK!$1$DA*5DIr5ADh3%JhS6C#HB10a(VCEC)0k$rq3Crl)-RKl
  1189. ir6X'b%!Fj)9r[bfXK`91["Hj#TF2$91H)S0a0F4pDmMkl-Mkm9kMkeQJm2DA2Rr
  1190. E52UIe2p0C*p6'kRqJ&I"V*(Kh#M%J$[GeP@$(ZJ9lpcMG6iAFIA8peqSqV6#kR2
  1191. Ec)T[`rFYVAUFmMq3!"R*!1Nf3$T%J!-8j'`3@k)#G")T2*qm1Xk")eR8i5cFYZF
  1192. 3c4@dNKhRB-U!5krPH33XR5q4$4Z#9pQIcq4!a-a@%U`f'5fh(cqTk5qHrCBkB1M
  1193. C@AH$bla+IfHfZRhNA5qa&C[Y8pDVEmFkFTZ*UE"lQ#ri*k&hj`bpaM[--YLqZYE
  1194. @IkdTGcLqVq$b-B$2MT52*QH4e"L12mKEh`H'iPXd2RcKj[k21PaRKiLkIhL"ak8
  1195. Zrc+9HJCSrN1NkI)X`m5i(&@DP,,e4jF0h'1k`qp*VSpJI$cYbfZci%,`'8**HBd
  1196. afd0,HFI46EV-E[m@$GrMTQc9F8T-HiUIppp'YNb)UhB(,e'm&qr!0kDq"5%2mG6
  1197. J'6-FAR-l1E@49km$L"fZ!k5"'[QeLGk41hj9qbC$R`TcJ*eUShK[5qblU64kdT!
  1198. !XGPm)VchrA(aZ%"YeTeeN9D"Ref"J@DmF9fIE*k)$A!@DIRL5Mh@&4XV6IB'c`F
  1199. #Tcl6IGVHhmfTd(d69Z!E4"I'q%b2Vrk+EV9F[%BY`Pe`DB,[JdEN$AkjU((V5UZ
  1200. cIq-QkY8@63'm0b)R`-,ElbLf8jcCHBJ%lPeQRFbP8Y5jYP,i!Z)[J56N-PC%Y13
  1201. `MKfjhbZkQhiB5,IA3c-r%K-TDBqka!LBj1bQ'MSlP+$ErL(mh9dh%K)[[l%[05j
  1202. F9BJp9eq$`cJ8U(Af6IFP%E"k-+lcNrIChXiCU0SqGq*FJpM"A@ELVlV$KHKV$r)
  1203. *UHY+k+c)STASj&6c%c2T5deqYGlN#XpqP`d6h"1qr`Nf)Y,pIepG,C+Z0eR2HlK
  1204. hL#PRHcF$8M%6F!r)K(l-)QFQ@d(VEYlHX86bYBVe[%Z[%(V'DpI(k10HX$fJkL[
  1205. @dI'c5K@@TpbhaiF,l#ZeMq6U3pFM-9`c$*m'-a#033@I602IQ-MGDr$1D,lk-ip
  1206. H6!bLGVlki"YEV#R3cbZ6qIC`5k2&D[jF0VA6KTE($8Db`r4rHIr-BIT0FYTN5Pp
  1207. `[bqP4PpT[URX1,*,B+P'hIT152CG*`p'LTcXAmPR'IH"bZHX9N'd55j5YSaLTXV
  1208. 1i5"8[-@B$lMcceF%KYIi&mlqjL`1-qY5[d'8Tma!3j!!JYUEeNd43"(IYrScm&[
  1209. Ui6+`56iRdVDpm4"4@5d!6(+!$$pQdc+3!%R`Tc8r-bVlLpiGrFBhVU8D8Tf5IFi
  1210. 6SZc-L%b"lSLdbJ`JFReFUp6BP%e1DY258mL!Fr6aR*ppc#qVKE&l`Zc4AefM-0d
  1211. mYh(kR3C@DC-ap9kQBM@$AZ2UCaHfaA)pbd(Z*N3[hHpk#G'a@fBq+[G2L@p$@,M
  1212. AZhbA9aMDj)ZNMiem'Iqb[mkkcXA5S&@)U,if$*MMqUj%-arNRV8IjFrSF2Z0Qi[
  1213. *3-Z'dY0VcbZeV(53!+pl5(L"PeF4rc`4`&)N0"kGl`cic4MrIAkA00ph+*p9lP%
  1214. @XT@[Y@8TS+15GA4$#Mfiq,5)q)rDL-FC4la1-HfiTD2i`')h)`H(eTC36cI5mff
  1215. PA1DcqhY$h4jEPR@KC*JV%3%YF+"[UZ68T-*lYVfII$5NC(3ELa9LeL*C@)5f4AF
  1216. VlTFXk%h!@-$SRP5kCRRXlGAPD[8,$lSUqkBJ8iqiD$549SqcSM4DCc"kT9QPr4r
  1217. Gm96SBIk9$UfEJ-jKSZ`&FchK5PhN$rTdELRRX6rqE!HHPap6HHkk`3QAZRec0([
  1218. qr1QbNZf"[8emM[#6$E8VdeqNf#!%V!8Pc+q4'KhCHPM3dP+6rj4U@RLXBEXa9TN
  1219. 4CqE-NQ34[8Q3!!DMJdL@XUIAmE9`M8Ukk3'Ve$Sp'9(hG6TP-(G`c$4K6i60`X1
  1220. $4h+I#GklFD3f,VQr5R!h2Aj8$192`LPV6dB+FLkrX*)PMfKk'$`ejD%(VHijh-j
  1221. %9N##i-NUG'MPjSMkMq%Pa)aRPl`a09TIlZGc21`rfI3a$VIMG*A8b*!![5S2ji8
  1222. 3PPdc9TRfJB[c)MAeRQ*,iMY(fQ!e4'0a+0J09,K-GBcPG(a$NNQ453BQTY5@HC6
  1223. U1pR8i`YeL%9lPAaRKd-96Xp@C5'[-TbR)@eeA*%SZh9@$[2(ZJ1SRp#))C%lNS4
  1224. 9RCEikZJa#5D'k99$EGHeYYZ[I)PBYCf5FZ8Z+6f@qN(V(Z[kb!@#RAP#SGBQ9)[
  1225. jC@p2FmB8@jXj@l3Sh"[630A`d0Gcf8k%Ypc*%95V#0kX9eLEh#HQB*18$5bX)1$
  1226. kPlmamQ0BM1*j%R'F$D0#%cVpTkdlY,MeYH[KDErdLMZXEFUq9YSaBiNK*pYEJ8L
  1227. ESST6U0$hhR9p3kh@26GcP,#$,U,1&8Lh,L%T(1d0Fj)!D*+eE1i@RBlJ4G*rXl%
  1228. %"6MVd#9M)R'rNTiE)N%S5AI-9f8fVGrP"`D1iHVjlQD&P`'1eQe4bMQB9A,r!AX
  1229. Vrcb2Pa[A(1IhSjch,T-[#%9i0jG-[#854E8jJ+GQMC4YpJm0NQ4m4'AT&MQ+chA
  1230. `NFB#Y[klA969G9869*H8cU1*[-R['Ed284q(@fX%a2*91qC3G#K4el8C+h2eh-I
  1231. DAQbUZ'M6ai5kXQJrHVrZHfM"P2$dfMRq025Y48QMf2c,LT86%J*Y+Me)Th'4'EQ
  1232. q1*,1*9%S!AljDFE)Q*5dAk(GDVS,#a'8ma+5%Ukm5M@C'b@G3FjGCP)i6dBiqf!
  1233. )+l3[I!PHTNpB2$aCEY`bUik&N!!K-46UG)aUR`r"+Pc)e2iYU"BQ5fS%lM8Xb2b
  1234. e'5r&iAclYDcL),C0PF5Xi6YDR-6b"C`Z,Va-54N&$eMeIQCQ1bAVdm(Kh@EMf*m
  1235. d%b2R*J1iEd#9VTjch&p`X,[R'0HGZqBf'%HPTbPK`'6k"jfp2q#"Q4(i%lXTm*K
  1236. !L3B#![[pmSZ50N`SfY2C+C(QLIm0YB%[cUMl0`[XC'9Z1m0)Pj4i2@PIL3qcF5X
  1237. *iT5IepqIa-52UFejcN$K-Rl10Z(8p9Y,XcN0e6EraK'I`-#3!)+,Na3Kq'R(ihh
  1238. - -IEV)9h,C`-#ek[9k#kqj4QZG-!d2NJ3Hib0[E'Vm2-pRIVp0)rLjUfVN0*T$66r
  1239. Ri1,B$T+a(5FEJidVfJ)rk&l!Pki$K95EB3'+-&kfN@fJHSTYlUbVTU9T!48()C8
  1240. YDMiZQQ)dU#+M5dqK"I*#Ba(2ZL%3KK-F&BX&MXV1K8pp(bGr4b9eC@2JqDX(%L5
  1241. 4+1RY9NhUpPQ@TPV1Q'XFZ$DV'R9pfPDqkZ@Di%Pr566[`r69`aBrXjXf5-*k$,6
  1242. AIdFV$a$fBZ4`*Mc,9XCV-9)YDDRb+ah@q5$6*@+dTd58Sf9C9eq"58b*HEIH)pf
  1243. G0jM8X2+h#GhmY[`fh%&H!N2a`QIiFZArSBbqRK[B3f1ff@c2@,@Qhl8QT[Dc16j
  1244. `1%mdI`S616Z6)Id%f'Qk)'BN+Si")DMdJ-6M5VjX,Aki'8cl(DDE$XI`!ChJM,+
  1245. E$k@"#Cjr`b1el[GBeAmkIr0YFEGC8RDhQ"XlcYp"IcpPXqhd0r2f1f[,rEAHcd&
  1246. rJE,DlB!!!)!eCP"JGQG`"i"f#!!(!("`F!GSKi!'J!"`J!!!!)"hF!J!#(L!8(D
  1247. !9BGh!(!!"`!'KJ!)"J"hGQD)C`!!#!!!H(F!!(!(J!#!!!!!"i!!!!#(#!!!!)!
  1248. !F!F!!(!!!!KJ!!!!!!D!!(!(!!!!!!J!J!!!!!!(#!#!!!!!!!!!"`N!!6-!3%!
  1249. !3%!#%M1)N3*`!9!QY0Jcr&MQ`@2(b6B22TGXf$fH6SSrXqACQ[rE`p8eq[k2GHi
  1250. F1KYlf(i@pRHZlq[Eq1'N1GVdlQeDRfG"SU52Rabm3&c2[cmIG%C[k+Mmcr@Y&bI
  1251. TbSjU02-NbD-8X@D-95,P',kD1-AHrea9YAZ#hF[4f4BNl+98+ekN5aU!rq8Y9JM
  1252. mFY6LL*Gd#A8UeX-pkB+q"hLMbqUA,rCpmi'3!'UpS-V8rphpiXb+Ir"%4X4j[Pe
  1253. J!!"#!!#DLDDDTSUTS+UUS!S!S%!*N!!(CiKRH'GhCRL*H!L3!!9hCAL@QAGRH@C
  1254. SL+N*#3F&Gf4RGCK@C@T99SHBQ3N!#)!4!!)M4%9@CfGhJ(KT"j!!!!#!)#-d48C
  1255. Q9PGRKhKRDBH(LBQCKk#TN!!!N!!!!!S!!!!!!!Ve8@96CD*p2,0AC#HZ%fU(2dq
  1256. b("ZhS@8dd3XlTV)DGQVYM@!b-+GPQ[CC#R4$$XdkqMVr1hC6$A96RfGNB63e6J(
  1257. SRVXReGT*DkGP4'G@H%eGFH[64li9cji`ke"'lEa@3lkD[EA$[RXlSGG)"HQD[XQ
  1258. S3ej&S+Z&c60lqZ-)qk1U(*ir(YlX)@bHKkE+ik0P%0&08+)c9DL[1kR[4i'$HbR
  1259. 6VRSM9A$YMUM90C%#BAJ36U31qC%ERKRf9&#P!j`XU+GHQ1T)fVppGNG-2+N`3Ye
  1260. 45158P*L&2e%bD%%9&B8bR004A5jGHZ01ZL0[mpJA,6h-bkHX6,40UlGNhE'kNMc
  1261. f3lSdDa-[F)rpp1b%e8B6kS@qHEXVkpRDB-KEc)S5A%Mljk+)DSL$`kPb)Udf@6$
  1262. +'rTkkD+i8kJHh*!!&NpJK#DJ,iQeCHU&9%qSUh45+0KZ!i"TGe8qkDUX!pR[eLR
  1263. `@GFE,)e*NNN@88dM*FjT93Rd)dl0P3dJ8mff$SdEZfc)`Cp"PG`SQZR6'(rpNic
  1264. FZ`kaTTTT%e,XjC1"d43V2ZLIfR6hXlTUY+-$25'Rh6HiL`Zled#X``dTC9dNUiV
  1265. $A3%20f98eeM@LLbF8V$3*VVhEGZhQ"PSTSSTlc6bX34r5E558-Y0*QVDQUNHeDb
  1266. &-@F9ZhDAUPbddlZYrV"@l5q5+LEGTKpC#Fkq8eTeHT`0U+0PHK(H('!-*3ZS@DR
  1267. l*`ZC0CD#YTl$G+(I95-$KkpFHbB`"L%[8l1hZXYTCIC4R!fZq"-PC!TDS%1L-4U
  1268. 09%881Ii[X4@R83iF`KbV%qlQ1IXpX2ZSMRr@Iffpkp$Sl,)I9H!cm2Mh@lF2KmG
  1269. UebG'2,Q)AFY@Y+1E&KYHLe[ErQmpVpP[IRMUf3rGK,bLQ`5)5r858L,b55jjl&N
  1270. R"H*)4di4&9C*I3dZ21`EjKD*4qY&,'[A*NB4qmShLY5C-NRi3r&L0hGeCjq8
  1271. 1MP4BIB-e+)U3!!J,dj1MNP`qV*,$Mf6dCb59U(`RV5Nr2a@X@20,kCFLKVMPp1,
  1272. (DYh[KmINiS3jX@2lJ,I,*`hISqRPjH@8"YZhH[AVi(HISpFZlc!5rKKmYhFZ5HA
  1273. E!Ci52F,"lf%HqMkEelcAVZ(bNpYF[4NK2$Lp%'36$0d3A"F-236q3(r(NNhFS-I
  1274. !$h!9[mpT'f5$NH%q&lK[)3VQ[mCrb+Jp-E#(A*p[cNeP"VPpA'KTi'0-R"K$Hhc
  1275. &XXJ$rimriHV(LcH-aIIZ5B0Zl*HJ2A)%TKH6,c-3HqT!Ie)hjPY2R58IN`h[**H
  1276. DP6q4)LpH6Qb)3H"Jemj'LfRL$h0M0qm"lU%'C%dhq(arf48ZpZhj,r(G`lc$0P1
  1277. VCUamY0E0hf1pGIled5KF$b`hYhf&GI+59(Pcp1*mb'YBZ8C$$)9HU%-hf5QR1!Z
  1278. rMabY9jImbiRi'RSp9YDNcjmNDdUeV)+l$D`j2ANfNVhJ-*2YHm"Jjr9l`'$RGHm
  1279. $9!T*cQ5fU,q3!"4IG@f"4`mN)0%BaVH[R12UEK!#rq5,Y@`HSmaDUie+[3iMZmN
  1280. EAcJKh'eUA'25N!"'AfrSl`&m1il`1ZC$l(H!`#Er)Jh0rX"F[8h!kib`*Dr$Kqp
  1281. QIZmV2T&UAUmk-KU*Sb"rK,[iqC[31pb,9R#AGeBDTZmUVMQU!arLdi%$+I#edpF
  1282. iF+Gm*R@(l0lQIZ5m`ekXI-[eR!0rFLaKE*Q,#rk3!2-(BjI5U2lNQqBqrX4N`@j
  1283. LIJZV([#RI9ki)N(mDXp3Qbj'UUQVLJ[Yi-X&m,Vi@(l0qbHbdd3VpPY-DkarY)'
  1284. - -YP@rJ`110(I'FVVM2T9RA-&lhTF(,'cNf99deA%&&EeQ8qTSD"4rTR#bd"ZI6Hh
  1285. VfrFNi6&Aml3k[BY@F0)IA&aEMZ`hlekl")REi"GHb[*jQY*IQC`+f4(,Vc&50%T
  1286. kV*`,pZA)@2kCFf,(KbjXQ,(k@)4rh0dc96DFdIdXEFHeY%%))MM6JTCkH[Hq[6K
  1287. 1eli-&Q2J`Q&'PJZ`+GN'lXUN%eUe%(JCP`IIp-klL@&aiZC@ijC$plL*[$e)CJ5
  1288. ri4*emL+`1*5$)A+AJ*-A8keq9L9Up*a)QrK4NMRZLRFipm%l!1F#lpf4R1bqIC!
  1289. !qhRk6-Bk0Ua`!Ak'm2)#qkQI1IR,0,NMf@A"r3Xp2IGXL3lE9Vjl%&1QbUdSHAK
  1290. - -N9UeiP&DK6pRlJ`LM[krN[ZrVpFATe$5j-PpHNkB0H509l%PEjQ0!I%5REZIAVT
  1291. UX8iei-AaZ$[H2ECKfj`5Y2"`5(m1TqER6l*ciaddhY[aXr9,eZ!pN!#kr(VQ28p
  1292. cdFea8!ABF!!p[cR`iR*XR(hVpcq"AFMqM2,cMa#hjm0NAVc%k(PHBQPdc&cmp$4
  1293. i@[lDPTmeT6Jh2V(rLf8k4DKj%Gb'pJmpS[K0TTIrCPBf3r2fM6r"(Ml[AZ9[p+0
  1294. l@XHE6#A8UHDR6KiAa`e6MrU($J8))hfEF[aZTYmqYe0YRYZS[Q0ePXPk"*cj$qC
  1295. U*DrH(Nm6A+raH4RPjlq#EjF$2JN!!"LVABm!!J!09@adFQ&6E'PY4Q&cG!%!!!!
  1296. )69"69%e38b#LKF+"T["["3%!if#91!!#!!"31!!!!!!!!#k6!!!!!"0"BQpeG#"
  1297. 9E(4bB90XD@e'BA0d!3!!,TY849K869"6)++CJZZPL!D!!3!9HZ9[!!B!!!'X!!!
  1298. C[`!!!8S!!!IS'dX!!!:
  1299.  
  1300. +++++++++++++++++++++++++++
  1301.  
  1302. From: sw@network-analysis-ltd.co.uk (Sak Wathanasin)
  1303. Date: 1 Oct 92 13:48:52 GMT
  1304. Organization: Network Analysis Ltd
  1305.  
  1306.  
  1307. In article <92275.011613TOGE@SLACVM.SLAC.STANFORD.EDU> (comp.sys.mac.programmer), TOGE@SLACVM.SLAC.STANFORD.EDU (Nobukazu Toge) writes:
  1308.  
  1309. > If someone has written an MPW tool to show assembly + source listing,
  1310. > that's certainly much nicer.
  1311.  
  1312. There was a tool called UltraSlimFast distributed on the developer CDs. I
  1313. think that's what Keith was refering to. I haven't used it for a while. SourceBug
  1314. will show assembly code (I select the source line, then switch to "View assembler",
  1315. and the assm code corresponding to the selected src line is highlighted), and so
  1316. will ObjectMaster from a menu option in its browser window.
  1317.  
  1318.  
  1319.  
  1320. Sak Wathanasin
  1321. Network Analysis Limited
  1322. 178 Wainbody Ave South, Coventry CV3 6BX, UK
  1323.  
  1324. uucp:      ...!uknet!nan!sw  Phone: (+44) 203 419996
  1325. AppleLink: NAN.LTD           Internet: sw@network-analysis-ltd.co.uk
  1326.  
  1327. +++++++++++++++++++++++++++
  1328.  
  1329. From: TOGE@SLACVM.SLAC.STANFORD.EDU (Nobukazu Toge)
  1330. Date: 2 Oct 92 02:30:17 GMT
  1331. Organization: Stanford Linear Accelerator Center
  1332.  
  1333. Sak Wathonasin (sw@network-analysis-ltd.co.uk) mentioned UltraSlimFast
  1334. and Manuel Veloso (veloso@husc9.harvard.edu) actually has posted the
  1335. file yesterday (today?).  I tried it just a moment ago. It certainly
  1336. works! (system 7.0.1 with MPW 3.3a14).  Thanks!
  1337.  
  1338. I think I've seen UltraSlimFast long time ago on one of those CDs, but
  1339. I never cared to figure out what it was :( :)
  1340.  
  1341. - - Nobu Toge (ex-SLAC, now-KEK)
  1342.  
  1343. #include <StandardDisclaimers.h>
  1344.  
  1345. +++++++++++++++++++++++++++
  1346.  
  1347. From: ksand@apple.com (Kent Sandvik)
  1348. Date: 7 Oct 92 02:45:51 GMT
  1349. Organization: Apple
  1350.  
  1351. In article <92275.183018TOGE@SLACVM.SLAC.STANFORD.EDU>, Nobukazu Toge
  1352. <TOGE@SLACVM.SLAC.STANFORD.EDU> wrote:
  1353. > Sak Wathonasin (sw@network-analysis-ltd.co.uk) mentioned UltraSlimFast
  1354. > and Manuel Veloso (veloso@husc9.harvard.edu) actually has posted the
  1355. > file yesterday (today?).  I tried it just a moment ago. It certainly
  1356. > works! (system 7.0.1 with MPW 3.3a14).  Thanks!
  1357.  
  1358. > I think I've seen UltraSlimFast long time ago on one of those CDs, but
  1359. > I never cared to figure out what it was :( :)
  1360.  
  1361. I assume you ment the System 7 CD. I'm interested to hear that
  1362. the tool still works with the new MPW versions. I never got it to
  1363. work with MPW 3.2.
  1364.  
  1365. Kent
  1366. - -------------------
  1367. Kent Sandvik (UUCP: ....!apple!ksand; INTERNET: ksand@apple.com)
  1368. DISCLAIMER: Private activities on the Net.
  1369.  
  1370. +++++++++++++++++++++++++++
  1371.  
  1372. From: REEKES@applelink.apple.com (Jim Reekes)
  1373. Date: 8 Oct 92 02:12:40 GMT
  1374. Organization: Apple Computer, Inc.
  1375.  
  1376. In article <ksand-061092194618@wintermute.apple.com>, ksand@apple.com (Kent
  1377. Sandvik) wrote:
  1378. > In article <92275.183018TOGE@SLACVM.SLAC.STANFORD.EDU>, Nobukazu Toge
  1379. > <TOGE@SLACVM.SLAC.STANFORD.EDU> wrote:
  1380. > > Sak Wathonasin (sw@network-analysis-ltd.co.uk) mentioned UltraSlimFast
  1381. > > and Manuel Veloso (veloso@husc9.harvard.edu) actually has posted the
  1382. > > file yesterday (today?).  I tried it just a moment ago. It certainly
  1383. > > works! (system 7.0.1 with MPW 3.3a14).  Thanks!
  1384. >  
  1385. > > I think I've seen UltraSlimFast long time ago on one of those CDs, but
  1386. > > I never cared to figure out what it was :( :)
  1387. > I assume you ment the System 7 CD. I'm interested to hear that
  1388. > the tool still works with the new MPW versions. I never got it to
  1389. > work with MPW 3.2.
  1390.  
  1391. I've been using UltraSlimFast 2.0a3 for a long time now, and it continues
  1392. to work fine.  The tool depends on the format of the object file created
  1393. by the compilier, so new MPW versions shouldn't affect it.  The name of
  1394. the tool had to be changed for obvious legal reasons.  I don't know how
  1395. it's distributed.
  1396.  
  1397. One thing worth noting, you cannot compile with the -opt full flag when
  1398. using UltraSlimFast.  UltraSlimFast depends on -sym full, which disables
  1399. the compilier's optimizations.  This is the side affect of trying to
  1400. create object code that can be examined at the source level.
  1401.  
  1402. - -----------------------------------------------------------------------
  1403. Jim Reekes, Polterzeitgeist  |     Macintosh Toolbox Engineering
  1404.                              |          Sound Manager Expert
  1405. Apple Computer, Inc.         | RAll opinions expressed are mine, and do
  1406. 20525 Mariani Ave. MS: 81-KS |   not necessarily represent those of my
  1407. Cupertino, CA 95014          |       employer, Apple Computer Inc.S
  1408.  
  1409. ---------------------------
  1410.  
  1411. End of C.S.M.P. Digest
  1412. **********************
  1413.